package context

import (
	"ksd-social-api/commons/lib"
	"time"
)

/**
 * @author feige
 * @date 2023-10-08
 * @version 1.0
 */
type NoteContext struct {
	// 下载评论主键 -- 忽略使用omitempty
	Id             string `json:"id"`
	Title          string `json:"title"`       //下载标题
	Url            string `json:"url"`         //站外访问地址
	Content        string `json:"content"`     //内容
	HtmlContent    string `json:"htmlContent"` //内容
	Tags           string `json:"tags"`        //标签
	Img            string `json:"img"`         //下载资源封面
	Description    string `json:"description"` //描述
	Viewcount      int    `json:"viewcount"`   //预览数量、
	Notetype       int    `json:"notetype"`    // 基础课 2进阶课 3 实战小册 4 面试课
	CommentFlag    int    `json:"commentFlag"` //是否允许评论 1允许 0不允许
	FavNum         int    `json:"favNum"`      //收藏人数
	CommentNum     int    `json:"commentNum"`  //评论数量
	BuyNum         int    `json:"buyNum"`      //购买人数
	Price          string `json:"price"`       //购买价格
	Realprice      string `json:"realprice"`   //真实价格
	Stimer         string `json:"stimer"`      // 时长
	SpecialId      uint64 `json:"specialId"`   // 专栏Id
	ChannelId      uint64 `json:"channelId"`   // 栏目
	ChannelName    string `json:"channelName"` //栏目名称
	PanLink        string `json:"panLink"`     //网盘地址
	PanPwd         string `json:"panPwd"`      //网盘密码
	SystemId       uint64 `json:"systemId"`    //系统Id
	SystemName     string `json:"systemName"`  //系统名称
	Status         int    `json:"status"`      //发布状态 1发布 0未发布
	NewFlag        int    `json:"newFlag"`     //是否最新 1最新 0非最新
	HotFlag        int    `json:"hotFlag"`     //是否热门 1热门0非热门
	PushFlag       int    `json:"pushFlag"`    //是否推荐 1推荐 0不推荐
	VipFlag        int    `json:"vipFlag"`     //1所有人可见 2 VIP免费 3：SVIP免费
	PayFlag        int    `json:"payFlag"`     //1免费  2 收费
	ShowFlag       int    `json:"showFlag"`    // 是否展示，1展示 0隐藏
	Finished       int    `json:"finished"`    // 是否完成，1展示 0隐藏
	Sorted         int    `json:"sorted"`      // 排序
	Path           string `json:"path"`        // 短路径
	Videoinfo      string `json:"videoinfo"`   // 视频信息
	Ntype          int    `json:"ntype"`       //1手册 2视频
	Uuid           string `json:"uuid"`        //用户唯一标识
	NoticeMsg      string `json:"noticeMsg"`
	Avatar         string `json:"avatar"`      //上传用户头像
	Username       string `json:"username"`    // 用户名
	Userid         uint64 `json:"userid"`      //上传用户Id
	ChapterFlag    int    `json:"chapterFlag"` // 1无章节 2无章节
	CategoryId     uint64 `json:"categoryId"`
	CategoryName   string `json:"categoryName"`
	Videoid        string `json:"videoid"`
	ClientLink     string `json:"clientLink"`
	ClientLinkName string `json:"clientLinkName"`
	ClientLinkImg  string `json:"clientLinkImg"`
	QqLinkCode     string `json:"qqLinkCode"`
	QqLinkName     string `json:"qqLinkName"`
	QqLinkImg      string `json:"qqLinkImg"`
	WeixinLink     string `json:"weixinLink"`
	WeixinLinkName string `json:"weixinLinkName"`
	WeixinLinkImg  string `json:"weixinLinkImg"`
	ClientFlag     string `json:"clientFlag"`
	Weixingzcode   string `json:"weixingzcode"`
	Weixingzimg    string `json:"weixingzimg"`
	Opengz         string `json:"opengz"`
	Otherinfo      string `json:"otherinfo"`
	ChannelIds     string `json:"channelIds"`
}

/**
 * @author feige
 * @date 2023-10-08
 * @desc  下载明细页面需要返回的数据信息
 */
type NoteVideoContext struct {
	Id           lib.BigInt `json:"id"` // 下载主键
	Title        string     `json:"title"`
	Img          string     `json:"img"`
	Videoid      string     `json:"videoid"`
	SpecialId    string     `json:"specialId"`
	PanLink      string     `json:"panLink"`
	PanPwd       string     `json:"panPwd"`
	SystemId     uint64     `json:"systemId"` // 系统编号
	CategoryId   uint64     `json:"categoryId"`
	CategoryName string     `json:"categoryName"`
}

/*
*
  - @author feige
  - @date 2023-10-13
  - @version 1.0
  - @desc 收藏点赞
*/
type NoteLikeContext struct {
	UserId uint64 `json:"userId"` // 点赞用户
	Uuid   string
	NoteId uint64 `json:"noteId"` // 点赞下载
}

/*
*
  - @author feige
  - @date 2023-10-13
  - @version 1.0
  - @desc 搜索上下文
*/
type NoteSearchContext struct {
	PageNo       int64  `json:"pageNo"`    // 分页
	PageSize     int64  `json:"pageSize"`  // 每页显示
	Keyword      string `json:"keyword"`   // 搜索关键词
	ChannelId    uint64 `json:"ChannelId"` //主分类
	VipFlag      int    `json:"vipFlag"`   //1所有人免费 2 VIP免费 3：SVIP免费
	Status       int    `json:"status"`    //1所有人免费 2 VIP免费 3：SVIP免费
	PayFlag      int    `json:"payFlag"`   //1：免费 2：付费
	HotFlag      int    `json:"hotFlag"`   //是否最热 1是 0否
	PushFlag     int    `json:"pushFlag"`  //是否推荐 1是 0否
	NewFlag      int    `json:"newFlag"`   //是否最新 1是 0否
	Notetype     int    `json:"notetype"`  //类型 1基础 2进阶 3 实战 4面试
	OrderNum     int    `json:"orderNum"`  //栏目搜索
	SystemId     uint64 `json:"systemId"`  // 系统编号3
	CategoryId   uint64 `json:"categoryId"`
	CategoryName string `json:"categoryName"`
}

/**
 * @desc 收藏和点赞
 * @author feige
 * @date 2023-11-14
 * @version 1.0
 */
type NoteUserListPageContext struct {
	PageNo     int64  `json:"pageNo"`     // 第几页
	PageSize   int64  `json:"pageSize"`   // 每页显示多少条
	UserId     uint64 `json:"userId"`     // 用户Id
	SystemId   uint64 `json:"systemId"`   // 系统编号
	SystemName string `json:"systemName"` // 系统名称
}

/**
 * @author feige
 * @date 2023-10-08
 * @version 1.0
 * @desc 下载浏览数记录
 */
type NoteUserHitsContext struct {
	Opid       uint64 `json:"opid"`       //下载Id
	UserId     uint64 `json:"userId"`     //用户Id
	Uuid       string `json:"uuid"`       // 用户uuid
	Avatar     string `json:"avatar"`     // 用户头像
	Username   string `json:"username"`   //用户名
	Nickname   string `json:"nickname"`   //昵称
	SystemId   uint64 `json:"systemId"`   // 系统编号
	SystemName string `json:"systemName"` // 系统名称
}

/**
 * @author feige
 * @date 2023-10-08
 * @version 1.0
 * @desc 下载浏览数记录
 */
type NoteUpdateContext struct {
	Id       lib.BigInt `json:"id"`
	Field    string     `json:"field"`
	Value    any        `json:"value"`
	Field2   string     `json:"field2"`
	Value2   any        `json:"value2"`
	SystemId uint64     `json:"systemId"`
}

type NoteCodeContext struct {
	Id         string     `json:"id"`         // 业务主键
	Code       string     `json:"code"`       //兑换码
	Mark       int        `json:"mark"`       //是否兑换
	Opid       lib.BigInt `json:"opid"`       //下载
	SystemId   uint64     `json:"systemId"`   // 系统ID
	SystemName string     `json:"systemName"` // 系统名称
	CreateTime time.Time  `json:"createTime"` // 创建时间
	UpdateTime time.Time  `json:"updateTime"` // 更新时间
}

/*
- @author feige
- @date 2023-10-13
- @version 1.0
- @desc 搜索上下文
*/
type CodeSearchContext struct {
	PageNo   int64  `json:"pageNo"`   // 分页
	PageSize int64  `json:"pageSize"` // 每页显示
	Mark     int    `json:"mark"`     // 搜索关键词
	Keyword  string `json:"keyword"`  // 搜索关键词
	SystemId uint64 `json:"systemId"` // 系统编号
}

/*
- @author feige
- @date 2023-10-13
- @version 1.0
- @desc 搜索上下文
*/
type CategorySearchContext struct {
	ChannelId uint64 `json:"channelId"` // 栏目
	Status    int64  `json:"status"`    // 状态
}

/*
- @author feige
- @date 2023-10-13
- @version 1.0
- @desc 搜索上下文
*/
type BatchUsersContext struct {
	Uuid       string     `json:"uuid"`
	Opid       lib.BigInt `json:"opid"`
	SystemId   uint64     `json:"systemId"`   // 系统编号
	SystemName string     `json:"systemName"` // 系统名称
}

/**
 * @author feige
 * @date 2023-10-08
 * @version 1.0
 * @desc 下载评论表
 */
type NoteCategoryContext struct {
	// 下载评论主键 -- 忽略使用omitempty
	Id          string    `json:"id"`          // 业务主键
	Title       string    `json:"title"`       // 分类名称
	Icon        string    `json:"icon"`        // 分类图标
	Description string    `json:"description"` // 描述
	ParentId    uint64    `json:"parentId"`    // 父ID
	Sorted      int       `json:"sorted"`      // 排序 业务使用的是升序 小--大
	Status      int       `json:"status"`      // 发布状态 0未发布 1发布
	IsDeleted   int       `json:"isDeleted"`   // 删除状态 0未删除 1删除
	SystemId    uint64    `json:"systemId"`    // 系统ID
	ChannelId   uint64    `json:"channelId"`   // 栏目ID
	SystemName  string    `json:"systemName"`  // 系统名称
	CreateTime  time.Time `json:"createTime"`  // 创建时间
	UpdateTime  time.Time `json:"updateTime"`  // 更新时间
}
